#ifndef __DEBUG_TOOLS_H
#define __DEBUG_TOOLS_H

#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
// 回调函数类型：包含通道索引和字符串参数
typedef void (*call_t)(int channel, const char *param);

// 调试发送函数类型
typedef void (*debugSend_fn_t)(const uint8_t *buf, int len);

// 初始化调试工具
void debugInit(debugSend_fn_t fn, void (*paramInitfn)());

// 指令相关功能
void call_reg(int i, call_t cb_f); // 注册回调函数
void call_del(int i);              // 删除回调函数

// 参数绑定和状态管理
void param_setBinding(int channel, float *data); // 绑定参数
void param_delBinding(int channel);             // 解绑参数
void param_init(void);                          // 初始化参数管理
int param_channelStatus(int channel);           // 检查通道是否更新
void param_uartIT_handler(char buf);            // 串口中断处理函数

// 调试输出管理
void debugHandler(void);                        // 调试处理函数（轮询调用）
void log_setStat(int i);                        // 设置调试状态
void log_setBinding(int channel, float *data);  // 手动绑定数据
int log_autoBinding(float *data);               // 自动绑定数据
void log_delBinding(int channel);               // 解绑数据

void my_dt_init(void);

void usart_printf(char *format,...);

#endif // __DEBUG_TOOLS_H
